home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / parted / constraint.h next >
C/C++ Source or Header  |  2006-04-20  |  3KB  |  98 lines

  1. /*
  2.     libparted - a library for manipulating disk partitions
  3.     Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
  4.  
  5.     This program is free software; you can redistribute it and/or modify
  6.     it under the terms of the GNU General Public License as published by
  7.     the Free Software Foundation; either version 2 of the License, or
  8.     (at your option) any later version.
  9.  
  10.     This program is distributed in the hope that it will be useful,
  11.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.     GNU General Public License for more details.
  14.  
  15.     You should have received a copy of the GNU General Public License
  16.     along with this program; if not, write to the Free Software
  17.     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  18. */
  19.  
  20. #ifndef PED_CONSTRAINT_H_INCLUDED
  21. #define PED_CONSTRAINT_H_INCLUDED
  22.  
  23. typedef struct _PedConstraint    PedConstraint;
  24.  
  25. #include <parted/device.h>
  26. #include <parted/natmath.h>
  27.  
  28. struct _PedConstraint {
  29.     PedAlignment*    start_align;
  30.     PedAlignment*    end_align;
  31.     PedGeometry*    start_range;
  32.     PedGeometry*    end_range;
  33.     PedSector    min_size;
  34.     PedSector    max_size;
  35. };
  36.  
  37. extern int
  38. ped_constraint_init (
  39.     PedConstraint* constraint,
  40.     const PedAlignment* start_align,
  41.     const PedAlignment* end_align,
  42.     const PedGeometry* start_range,
  43.     const PedGeometry* end_range,
  44.     PedSector min_size,
  45.     PedSector max_size);
  46.  
  47. extern PedConstraint*
  48. ped_constraint_new (
  49.     const PedAlignment* start_align,
  50.     const PedAlignment* end_align,
  51.     const PedGeometry* start_range,
  52.     const PedGeometry* end_range,
  53.     PedSector min_size,
  54.     PedSector max_size);
  55.  
  56. extern PedConstraint*
  57. ped_constraint_new_from_min_max (
  58.     const PedGeometry* min,
  59.     const PedGeometry* max);
  60.  
  61. extern PedConstraint*
  62. ped_constraint_new_from_min (const PedGeometry* min);
  63.  
  64. extern PedConstraint*
  65. ped_constraint_new_from_max (const PedGeometry* max);
  66.  
  67. extern PedConstraint*
  68. ped_constraint_duplicate (const PedConstraint* constraint);
  69.  
  70. extern void
  71. ped_constraint_done (PedConstraint* constraint);
  72.  
  73. extern void
  74. ped_constraint_destroy (PedConstraint* constraint);
  75.  
  76. extern PedConstraint*
  77. ped_constraint_intersect (const PedConstraint* a, const PedConstraint* b);
  78.  
  79. extern PedGeometry*
  80. ped_constraint_solve_max (const PedConstraint* constraint);
  81.  
  82. extern PedGeometry*
  83. ped_constraint_solve_nearest (
  84.     const PedConstraint* constraint, const PedGeometry* geom);
  85.  
  86. extern int
  87. ped_constraint_is_solution (const PedConstraint* constraint,
  88.                 const PedGeometry* geom);
  89.  
  90. extern PedConstraint*
  91. ped_constraint_any (const PedDevice* dev);
  92.  
  93. extern PedConstraint*
  94. ped_constraint_exact (const PedGeometry* geom);
  95.  
  96. #endif /* PED_CONSTRAINT_H_INCLUDED */
  97.  
  98.